package org.gridlab.gridsphere.services.visualization;

import java.util.Date;

/**
 * Interfejs dostarczania danych do klasy ChartGenerator
 * @author Krzysztof Goj
 */
public interface DataProvider {
    /**
     * Zwraca typ danych dostarczany przez ten DataProvider
     * @return Typ danych dostarczany przez ten DataProvider
     */
    public Class getDataType();

    /**
     * Zwraca liczbę serii danych
     * @return Liczba serii danych
     */
    public int getSeriesCount();
    /**
     * Zwraca etykietę serii danych
     * @param seriesNo Numer serii danych
     * @return Etykieta serii danych
     * @throws java.lang.IndexOutOfBoundsException Wyjątek generowany w przypadku odwołania się do numeru nieistniejącej serii danych
     */
    public String getSeriesName(int seriesNo) throws IndexOutOfBoundsException;

    /**
     * Pobiera serię danych o danym numerze
     * @param seriesNo Numer serii danych
     * @return Seria danych
     * @throws java.lang.IndexOutOfBoundsException Wyjątek generowany w przypadku odwołania się do numeru nieistniejącej serii danych
     */
    public Object getData(int seriesNo) throws IndexOutOfBoundsException;
    /**
     * Zwraca czas utworzenia wykresu
     * @return Czas utworzenia wykresu
     */
    public Date getCreationTime();
}

